Method for discovering and discriminating devices on local collaborative networks to facilitate collaboration among users

ABSTRACT

A method for identifying participants of a collaborative network is disclosed. The participants communicate over a larger electronic network wherein not all members may be participating in the collaborative session. The method begins by determining a unique session identifier for only the participants of the collaborative network. Next, a message having the session identifier is sent to all members of the network by an inquiring participant of the collaborative network. Only participants that have the session identifier respond to the inquiring participant. Finally, communication is established between the participants that responded to the message and the inquiring participant. In this regard, a collaborative network is formed including the inquiring participant.

BACKGROUND OF THE INVENTION

[0001] The present invention generally relates to identifying members ofa collaborative network and more particularly to a method of identifyingmembers in a peer-to-peer network without the use of a central server.

[0002] In a peer-to-peer network or system, users would like tocollaborate using their computing devices in a public or privatecollaboration session without the use of a server. Collaboration mayinvolve the transfer of files, sending messages, or other forms of databetween two or more computing devices of the network. Duringcollaboration, the computing devices share a physical network with otherdevices who the users may wish to selectively include or exclude fromtheir sessions.

[0003] Typically, a network has a central designated server that canidentify users and the current network addresses or device identifiersof their devices which are currently logged-in as well as the sessionidentifiers which are used to distinguish specific collaborationsessions. A collaboration session may correspond to an active group ofcollaboration participants or a team of participants in a virtualroom/physical location for collaboration. When the user logs in, thecentral server can provide the user's computing device a list of networkaddresses for the other devices who share the same session identifierand exclude those who are not in the desired session.

[0004] Without a central server, it is extremely difficult to maintainan accurate accounting of the participants in the collaborative session.The computing device of the user does not have access to a central listwhich can be used to identify participants. There is no centralmechanism for the addition and removal of participants. Accordingly, thecomputing device of the user will not be able to quickly and easilycontact all members of the collaborative session because they are notidentifiable to the user.

[0005] The Jini architecture provides an infrastructure for defining,advertising and finding services on a network where services are definedby Java interfaces or classes. Advertisement is done using a lookupservice, which is a place for services to advertise their presence on anetwork. Generally devices use Jini protocols to find lookup servers,then query found lookup servers using Jini to find services which mayexist on other network devices. Accordingly, the lookup service may notexist on the same device as the services advertised, nor does the Jiniitself provide information that can be used for collaboration.

[0006] Another type of location protocol is UPnP which is similar to theJini protocol. UpnP uses multicast messaging to request the existence ofservices. Only those servers that can provide a requested service orthat know of servers who can provide such a service respond. Theindividual collaborative services do not respond. Accordingly, in orderto utilize the UpnP service, a server must be present on the network.

[0007] U.S. Pat. No. 6,069,896 entitled “Capability Addressable NetworkAnd Method Therefor” describes the connection protocol for members in apeer-to-peer network. The '896 patent addresses the problems associatedwith trying to connect and authenticate other peers on a peer-to-peernetwork. However, the '896 patent does not disclose how to identify andlocate other peers when collaboration between peers is necessary.Furthermore, the connection protocol described by the '896 patent isextremely bandwidth intensive such that it would not be suitable for theidentification of collaborative devices on a peer-to-peer network.

[0008] Similarly, U.S. Pat. No. 6,282,183 entitled “Method ForAuthorizing Couplings Between Devices In A Capability AddressableNetwork” discloses the methods and protocols for authorizing couplingbetween devices in a capability-addressable network. However, the '183patent does not disclose how peers can be quickly and easily identifiedon the network. In fact, the '183 patent discloses how a device accessesnetwork services.

[0009] The present invention addresses the above-mentioned deficienciesin identification of users in a peer-to-peer network by providing amethod in which a user can identify the network addresses of other userswithout the use of a central server. Accordingly, the present inventionallows collaboration between computing devices where the network address(such as an IP address) and devices used by a user are not known inadvance and may change.

BRIEF SUMMARY OF THE INVENTION

[0010] In accordance with the present invention, there is provided amethod for identifying participants of a collaborative network. Theparticipants communicate over a larger electronic network wherein notall members may be participating in the collaborative session. Themethod begins by determining a unique session identifier for only theparticipants of the collaborative network. Next, a message having thesession identifier is sent to all members of the network by an inquiringparticipant of the collaborative network. Only participants that havethe session identifier respond to the inquiring participant. Finally,communication is established between the participants that responded tothe message and the inquiring participant. In this regard, acollaborative network is formed including the inquiring participant andexcluding others on the larger network.

[0011] The method of identifying participants further includes the stepof creating a participant list of the members of the collaborativenetwork which can be stored by the participants. The participant listincludes all of the participants of the collaborative network which havethe same session identifier.

[0012] The participants can be computing devices such as PDA's,computers or other electronic devices. In this regard, the collaborativenetwork is an electronic network that is capable of transmitting andreceiving messages to and from computing devices. Typically, thecollaborative network is a wired or wireless network. The message havingthe session identifier is a UDP datagram containing the sessionidentifier. The UDP datagram may be a broadcast or multicast datagram.

[0013] In accordance with the present invention, there is provided asystem for identifying members of a collaborative network. The systemcomprises at least two computing devices in electronic communicationwith one another. Furthermore, the system includes a unique sessionidentifier for distinguishing members of the collaborative network fromother members of the network. The system further includes anidentification message having the unique session identifier. Theidentification message is sent between at least two computing devicessuch that if the session identifier is identical between the twodevices, then the devices are members of the collaborative network. Ofcourse, it will be realized that multiple devices may be in electroniccommunication with one another such that only those devices which havethe unique session identifier are members of the collaborative network.

BRIEF DESCRIPTION OF THE DRAWINGS

[0014] These, as well as other features of the present invention willbecome more apparent upon reference to the drawings wherein:

[0015]FIG. 1 is a diagram depicting computing devices on a network forcollaboration.

[0016]FIG. 2 is a flowchart illustrating how the computing devices shownin FIG. 1 are identified in a collaborative session.

[0017]FIG. 3 is a flowchart illustrating how a computing device isremoved From a collaborative session.

[0018]FIG. 4 is a flow chart illustrating another method of how acomputing device is identified in a collaborative session.

[0019]FIG. 5 is a diagram depicting computing devices on a personal areanetwork for collaboration.

[0020]FIG. 6 is a diagram depicting computing devices utilizing accesspoints in a network for a collaborative session.

DETAILED DESCRIPTION OF THE INVENTION

[0021] Referring now to the drawings wherein the showings are forpurposes of illustrating a preferred embodiment of the present inventiononly, and not for purposes of limiting the same, FIG. 1 illustratescomputing devices A, B, C, D, and E in a peer-to-peer network. Thecomputing devices may be PDA's, PC's, wireless telephones, or any othertype of electronic device that can be in a network. The network may bewired (i.e, LAN or Ethernet) or wireless network (i.e., Bluetooth,802.11b). The present invention is independent of the type of thecomputing device or the type of network.

[0022] Each of the computing devices A, B, C, D, and E has a respectivenetwork identification number. For instance, computing device A has anetwork identification number of 001. The network identification numberis a unique identifier to the network. Furthermore, each computingdevice may also have an associated network address. The address may bean IP address or other type of network specific address. In someinstances the network identification number and the network address maybe the same unique identifier for the computing device.

[0023] Referring to FIG. 1, it is possible to see that computing deviceA is in direct network communication with devices B and D. Similarly,computing device C is in communication with devices B and E. It ispossible for computing device A to indirectly communicate with computingdevice C by utilizing the connection with computing device B.Accordingly, it is possible for computing devices A and C tocollaboratively share information by utilizing their connectivity withdevice B.

[0024] Referring to FIG. 2, a method of identifying computing devices ina collaborative network according to the present invention is shown. Themethod begins by the device accessing and logging into the network viacommonly known techniques. Next, the device that has just accessed thenetwork will send out a broadcast or multicast datagram containing thenetwork identification of the device, as well as a session identifier,to all potential participant devices on the network. If an appropriatereceiving device is a member of the same session, then the device willrecognize the session identifier and respond with the identification ofthe computing device and the network address of the device. However, ifa computing device is not a member of the group, the computing devicewill not respond. Finally, the inquiring device would generate orpopulate a list of devices that are in the same session as the device sothat collaboration can occur.

[0025] Using FIG. 1, an example of how the devices communicate will nowbe described. For example, assume that devices A, B, and C wish tocollaborate but want to exclude devices D and E on the network. All ofthe devices (i.e, A, B, C, D, and E) are on the same network and cancommunicate with each other using broadcast or multicast messages anddirected packets. As previously discussed, any type of wired or wirelessnetwork can be used.

[0026] The user's of devices A, B, and C agree on the ID of theirsession by choosing a name which can be turned into a unique session IDusing any type of algorithm. Alternatively, the session ID can be thename itself. For instance, the session ID may be the name of thecompany, a department or group, the name of a location, or the purposeof the collaboration session. The agreement for the session ID can occurbefore or after the computing devices are logged onto the network. Forinstance, the users of the devices can decide on the unique session IDby other means of communication such as telephone, email, or face toface discussion. However, the user's of devices D and E are not told anddo not know the name of the session ID.

[0027] Once the user of device A has logged into the network, the userwill enter the name of the session ID into computing device A. If thename of the session is not the session ID, then computing device A willuse the appropriate algorithm to derive the session identifier. Once thesession ID has been established, then device A will send a broadcastmessage containing the appropriate session identifier to every device onthe network (i.e., devices B, C, D, and E). The other devices receivethe broadcast message (i.e., packet) and examine it. At this point noneof the other user's of the devices on the network have entered theappropriate session ID. Accordingly, because none of the other devicesrecognize the session ID, none of the devices respond. By using thesession ID in the broadcast message, bandwidth is saved and scalabilityis increased. The session ID in the query considerably reduces thenumber of responses and traffic because authentication beginsimmediately once a response is received by a collaborating device of thesame session.

[0028] Next, the user of device B enters the name of the session ondevice B which derives the corresponding session ID. Once the session IDhas been entered, device B sends a broadcast message to the otherdevices on the network (i.e., devices A, C, D, and E). Device Arecognizes the session ID and responds with the device ID and/or networkaddress. Of course, devices C, D, and E do not recognize the session IDand do not respond to device A. Then, device A populates a collaborationsession device/user list with the ID and/or network address of device B.Similarly, device B populates its collaboration session device/user listwith the ID and/or network address of device A. As such, device A anddevice B can collaborate over the network without intrusion by the otherdevices.

[0029] If the user of device C wishes to join the collaboration session,then the user will enter the appropriate session name into device Cwhich derives the corresponding session ID. Once entered, device C willsend a broadcast message to all of the devices. Devices A, B, D and Ewill receive the packet and only devices A and B will recognize thesession ID and respond with the device and/or network address.Accordingly, device A and device B populate their respective devicelists with the information from device C. Similarly, device C populatesits device list with the information from devices A and B in order toform a collaborative network between devices A, B, and C, while stillexcluding devices D and E.

[0030] Referring to FIG. 3, several mechanisms are illustrated for acomputing device leaving the collaborative session. In the firstinstance a computing device can leave the network gracefully inasmuch asit doesn't crash. The device leaving the network will send a message toall of the devices connected to the network using either a connectionoriented protocol or a datagram. The message will declare that thedevice is leaving the network and that the remote peer is offline. Oncethe message has been sent, each of the devices that are members of thesession can appropriately update their device lists by removing thedevice that left the network.

[0031] On the other hand, sometimes the network connection may beterminated abruptly such as when the network connection is physicallybroken, the exit datagram is lost, or the remote peer goes out of rangeon a wireless network. Accordingly, it is not possible to send orreceive a message indicating that the device has left the session.

[0032] In order to account for this type of event, each device should beequipped to periodically send a “still alive” message to each connecteddevice. For example, each device in the network could send a messageevery ten seconds to the other devices indicating that the device isstill on the network. The “still alive” message could be aconnectionless datagram or a message sent using a connection protocolbetween the devices.

[0033] If a device does not detect or receive a “still alive” messagefrom another device of the network for more than twice a determinedinterval, then the device is declared offline and the connection is torndown. Furthermore, the device declared offline is removed from thedevice list. For example, referring to FIG. 1, if device A does notreceive a “still alive” message for more than two intervals of themessage being sent (i.e., 20 seconds), then device A will declare deviceB offline and remove device B from the device list.

[0034] Referring to FIG. 4, another method of identifying members of acollaborative network is shown. In this instance, the session identifieris not included in the broadcast or multicast datagram. The device willfirst log into the network. Next, the initiating device will transmit abroadcast or multicast datagram that does not include the sessionidentifier. Every device that is active on the network will then respondto the datagram. Next, the initiating device will connect to everyresponding device using a connection oriented protocol such as TCP toexchange messages relating to which session a device is a member. Theconnection can then be dropped or maintained as necessary. For instance,all of the devices which have the same session identifier as theinitiating device will have their connection maintained. If theconnection is maintained, all future messages regarding session changes,exiting the network, or “keep alive” messages can then be sent using areliable connection oriented protocol. This method can be furtherextended to support multiple networks or IP subnets by forwarding themulticast or broadcast packets to receivers in another network/subnetwhich can then multicast or broadcast the packets.

[0035] Furthermore, the above-mentioned process can be combined with anauthentication protocol to ensure that the device is actually a memberof the session. An additional protocol can then be used between peers toensure that peers recognize each other. A password or shared key couldbe used for authentication. Alternatively, public key cryptography couldbe used where each device contains the keys of all possiblecollaborators and is used to authenticate other users. Once the devicehas been verified to be a member of the session, then the device canconnect to other devices in the same session with a protocol like TCP ina peer-to-peer manner for collaboration.

[0036] Another instance of identification can occur when a network doesnot exist between devices, but the devices can communicate over someother type of connection. Accordingly, a connection could be set upinitially between the devices to determine if session identifiers match.For example, a “client” device connects to a “server” device using somevariant of a radio inquiry/response. The “client” then asks the “server”for the collaboration session ID to which the “server” will respond. Ifthe session ID matches, the “client” remains connected and authenticatesthe session ID in order to collaborate with the “server”. This could beimplemented with devices communicating over a Bluetooth network.

[0037] Referring to FIG. 5, the identification method of the presentinvention can be utilized with a Personal Area Network (PAN). Forexample, a PAN network consists of a central master device A and slavedevices B, C, D, and E connected in a star shaped topology. The masterdevice A is responsible for forwarding unicast, multicast, and broadcastpackets as required by the PAN. A device in the PAN, can respond onbehalf of other devices such that each device is either designated as amaster or slave device. A master is first created on the PAN with noother devices connected to it, and devices are designated as slaves asthey join the PAN.

[0038] For the identification of devices according to the presentinvention, after a slave device connects to the PAN, the slave devicesends an inquiry message in a broadcast or multicast datagram containingthe session identifier and the user identifier to all potentialparticipant devices in the network. The master device receives thebroadcast datagram and, as will be further explained below, does notneed to forward the datagram thereby saving bandwidth. The master willsave the session ID and network address from the inquiry for future use.Next, the master will retrieve previously saved network address/sessioninformation from previous requests. In this regard, the master willcontain network/session information about all of the slave devices. Themaster will reply to the inquiry (i.e., broadcast or multicast datagram)with a list of the network ID's that match the session ID requested. Theslave will use this information to begin a collaborative session withthe devices that have matching session ID's. In order to save bandwidthin the network, the master will save and respond to all inquiry requestsfrom the slave devices. In this manner, slaves who disconnect can theninform only the master who can then delete the network ID/sessioninformation from its list and notify the other connected slave devices.

[0039] The technique of the present invention can also be used toidentify other devices in the same local area for collaboration withoutthe need of a server. Referring to FIG. 6, computing devices A, B, and Ccan access network 20 through access point X. Similarly, computingdevices D and E access network 20 through access point Y. Each of thedevices stores the access point identifier (i.e., X or Y) after itconnects. As the devices move, they store the ID's of the closest accesspoint.

[0040] In order to identify participants near a desired device, theinquiring device sends a broadcast or multicast message containing theaccess point identifier instead of session ID information. Only thosedevices which have the same access point identifier will respond therebyidentifying those devices which are nearby. For instance, referring toFIG. 6, if device A sends out an inquiry, only devices B and C willrespond. This technique is useful for identifying participants that arein range of a wireless network. Additionally, instead of using accesspoint identifiers, physical “beacon” identifiers can be used.

[0041] In addition to the foregoing, it is also contemplated that theabove-mentioned method could be used with a designated responder for asession. When a computing device transmits a session identifier requestto a designated responder, the responder would reply with informationabout all of the other devices with the same session ID. Accordingly,the other devices would not need to respond thereby reducing bandwidthusage.

[0042] Furthermore, to reduce bandwidth, when a device joined orrejoined a network it could attempt to connect to a previous member ofthe team first. If found, the device could ask the found member for theinformation about other collaborative devices. If the previous member isnot in the session, then the device would utilize thebroadcast/multicast messaging as previously described above.

[0043] Additional modifications and improvements of the presentinvention may also be apparent to those of ordinary skill in the art.Thus, the particular combination of parts described and illustratedherein is intended to represent only certain embodiments of the presentinvention, and is not intended to serve as limitations of alternativedevices within the spirit and scope of the invention.

1. A method for identifying participants of a collaborative network fromall members of a computing network, the method comprising the steps of:a) determining a unique session identifier for the participants of thecollaborative network; b) transmitting, by an inquiring participant, amessage having the session identifier to all members of the computingnetwork; c) responding by participants having the session identifier tothe transmitted message sent by the inquiring participant; and d)establishing communication between the participants that responded tothe message and the inquiring participant such that the collaborativenetwork is formed including the inquiring participant.
 2. The method ofclaim 1 further comprising the step of creating a participant list withthe inquiring participant.
 3. The method of claim 2 wherein theparticipant list includes all of the participants of the collaborativenetwork with the same session identifier.
 4. The method of claim 1wherein the participants are computing devices.
 5. The method of claim 4wherein the computing devices are selected from the group consisting ofPDA's, computers, and wireless devices.
 6. The method of claim 1 whereinthe collaborative network is capable of transmitting and receivingmessages to and from computing devices.
 7. The method of claim 6 whereinthe collaborative network is a wired or wireless network.
 8. The methodof claim 1 wherein step (b) comprises transmitting a UDP datagramcontaining the session identifier to all members of the network.
 9. Themethod of claim 8 wherein the datagram is a broadcast or multicastdatagram.
 10. The method of claim 1 further comprising the steps of: e)transmitting by each participant of the collaborative network a stayalive message; and f) removing a participant if the stay alive messageis not received for a prescribed period of time.
 11. A method ofidentifying participants of a collaborative session communicating withan electronic network, the method comprising the steps of: a)establishing a session identifier for the collaborative session; b)transmitting the session identifier to all members of the electronicnetwork; and c) finding participants of the electronic network havingthe same session identifier in order to identify members of thecollaborative network.
 12. A system for identifying members of acollaborative network, the system comprising: at least two computingdevices in electronic communication with one another; a unique sessionidentifier for distinguishing members of the collaborative network; andan identification message having the unique session identifier that issent between the two computing devices such that if the sessionidentifier is the same between the two devices then the devices aremembers of the collaborative network.
 13. The system of claim 12 whereinthe electronic devices are in a wireless or wired network.
 14. Thesystem of claim 12 further comprising a participant list created on thecomputing devices in order to store members of the collaborativenetwork.
 15. The system of claim 12 wherein the computing devices areselected from the group consisting of PDA's, computers, and wirelessdevices.
 16. The system of claim 12 wherein the at least two computingdevices comprises a plurality of computing devices configured in anelectronic network.
 17. The system of claim 1 wherein the identificationmessage is a UDP datagram.
 18. The system of claim 17 wherein the UDPdatagram is a broadcast or multicast message.
 19. The system of claim 1further comprising a stay alive message transmitted between theelectronic devices and operative to inform if a device has left thecollaborative network.